package algorithm.leetcode.codeutils;

/**
 * @program: util
 * @description: 删除数组中的给定元素
 * 并且使剩余的元素排在前边
 * @author: zhouliangliang
 * @create: 2021-04-15 21:08
 **/
public class RemoveElements {

    /**
     * 只需要用未被删除的元素覆盖删除的元素即可
     * @param array 数组个数
     * @return 删除后数组中剩余元素个数
     *
     */
    private int deleteElements(int []array, int deleted) {
        int i=0;
        for(int j=0; j< array.length; j++) {
            if(array[j] != deleted) {
                array[i++] = array[j];
            }
        }
        return i;
    }

    public static void main(String[] args) {
        int []array = new int[]{0,1,2,2,3,0,4,2};

        int num = new RemoveElements().deleteElements(array, 2);
        System.out.println(num);
        for(int i=0; i<num;i++) {
            System.out.print(array[i] + " ");
        }
    }
}
